package com.hb.config;

import com.hb.impl.CDPlayer;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.ImportResource;

@Configuration
// 这是一种组合配置类更好的办法，不在某一个具体的配置类中导入其他的配置类，而是创建一个更高级别的配置类，以组合其他具体的配置类
@Import({CDConfig.class, CDPlayerConfig.class})
// 在 JavaConfig 中导入基于 XML 的配置，这样在 JavaConfig 中就能引用 XML 配置了
@ImportResource("classpath:spring-config.xml")
public class SoundSystemConfig {
    // 这里也是一样，当聚合 Java 配置类和 XML 配置后，XML 配置的 bean 会覆盖 Java 配置类中相同的 bean，和配置所处的位置前后无关。开始怀疑
    // @ImportResource("classpath:spring-config.xml") 是在 @Import({CDConfig.class, CDPlayerConfig.class}) 后面的，所以觉得处于后面位置的配置会覆盖前面配置中
    // 相同的 bean，但是将 @ImportResource("classpath:spring-config.xml") 放到 @Import({CDConfig.class, CDPlayerConfig.class}) 前面后结果还是一样，XML 配置
    // 还是会覆盖 Java 配置类中相同的 bean，因此结论就是：XML 配置的 bean 会覆盖 Java 配置类中相同的 bean，和配置所处的位置前后无关。
}
